package gestordeentidades.persistance.database;

/**
 * Trabalho DAS - 2014/2015
 * Class que guardar um parametro sql, a ser usado por um database statment
 * @author a21210380, a21190325, a21210392
 */
public class ParametroSql {
    private final int index;
    private final Object objecto;
    private final SQLtype targetSqlType;

    /**
     *
     * @param index 1..n
     * @param objecto que pretence ao index do sql
     * @param targetSqlType tipo de dados 
     */
    public ParametroSql(int index, Object objecto, SQLtype targetSqlType) {
        if(index < 1) {
            throw new IllegalArgumentException("O index do ParametroSql não pode ser menor que 1!");
        }
        if(targetSqlType == null) {
            throw new NullPointerException("O targetSqlType não pode ser null!");
        }
        if(objecto == null && targetSqlType != SQLtype.NULL) {
            throw new IllegalArgumentException("object não pode ser null!");
        }
        this.index = index;
        this.objecto = objecto;
        this.targetSqlType = targetSqlType;
    }

    public int getIndex() {
        return index;
    }

    public Object getObjecto() {
        return objecto;
    }

    public SQLtype getTargetSqlType() {
        return targetSqlType;
    }
}
